﻿/*
  --============================================================================================
  --============================================================================================
  -- Fichier          :	ConverterDetailPV.cs
  -- Objet			  :	Converter pour afficher une ligne détail d'un PV (ligne sous format String)
  -- Auteur			  :	S. Le Gouellec
  -- Date de création : 07/2014
  --                              :
  --                              :
  -- Notes spéciales		  :
  -- Historique			  :
  ----------------------------------------------------------------------------------------------
  -- |     Code    |  Vers. |   Date   | Auteur	|                  Description
  -- |  Dem/inc/pr |  	    |          |        |         
  -- -------------------------------------------------------------------------------------------
  -- |             |   1.0  | 07/2014  |  SLE	| Création
  -- |	           |	    |	       |        |
  --============================================================================================
  --============================================================================================
*/

using ModelEntities.Adapter;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;

namespace ReprisePV.Converter
{
    /// <summary>
    /// Converter pour afficher une ligne détail d'un PV (ligne sous format String)
    /// </summary>
    public class ConverterDetailPV : IValueConverter
    {
        /// <summary>
        /// PV affiché à l'écran
        /// </summary>
        private MEntetePV PVConverter;

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            MEntetePV pv = value as MEntetePV;
            String ligneDetail = String.Empty;

            if(pv != null)
            {
                PVConverter = pv;
                MDetailsPV detailPV = pv.DetailsPV.FirstOrDefault<MDetailsPV>(detail => detail.CodeInstruction.Equals(System.Convert.ToString(parameter)));
                ligneDetail = detailPV != null ? detailPV.LibelleInstruction : String.Empty;
            }

            return ligneDetail;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            String returnValue = String.Empty;

            if (PVConverter != null)
            {
                MDetailsPV detailPV = PVConverter.DetailsPV.FirstOrDefault<MDetailsPV>(detail => detail.CodeInstruction.Equals(System.Convert.ToString(parameter)));
                if (detailPV != null)
                {
                    detailPV.LibelleInstruction = System.Convert.ToString(value);
                    returnValue = detailPV.LibelleInstruction;
                }
            }

            return returnValue;
        }
    }
}
